﻿using System;
using System.Collections.Generic;

namespace Xejen.Languages
{
    /// <summary>
    /// 表示语言管理器
    /// </summary>
    /// <creator>marc</creator>
    public interface ILanguageManager
    {
        /// <summary>
        /// 语言变更时触发事件
        /// </summary>
        event EventHandler<ILanguage> LanguageChanged;

        /// <summary>
        /// 修改当前语言
        /// </summary>
        /// <param name="languageCode">语言简写</param>
        void ChangeLanguage(string languageCode);

        /// <summary>
        /// 获取全部的语言编码
        /// </summary>
        /// <returns></returns>
        string[] GetLanguageCodes();

        /// <summary>
        /// 获取全部支持的语言
        /// </summary>
        /// <returns></returns>
        Dictionary<string, string> GetLanguages();  

        /// <summary>
        /// 获取当前语言
        /// </summary>
        ILanguage CurrentLanguage { get; }
    }
}